package com.fz.us.admin.company.service;



import com.fz.us.admin.base.bean.BaseEnumManager;
import com.fz.us.admin.base.bean.search.order.Order;
import com.fz.us.admin.base.bean.search.page.PagePaging;
import com.fz.us.admin.base.bean.search.result.SearchResultList;
import com.fz.us.admin.base.bean.search.result.SearchResultPaging;
import com.fz.us.admin.base.bean.search.rule.Rule;
import com.fz.us.admin.base.service.BaseService;
import com.fz.us.admin.company.entity.*;

import java.util.List;
import java.util.Set;


/**
 * Service接口 - 组织
 * ============================================================================
 * 版权所有 2013
 * ----------------------------------------------------------------------------
 * 
 * @author
 * 
 * @version 0.1 2013-05-09
 */

public interface StepBriefService extends BaseService<StepBrief, String> {

    public StepBrief getInfoByStepNo(ProcessBrief processBrief, int stepNo);

    public StepBrief getInfoByCommonConfig(CommonConfig commonConfig);

    //根据职责来获得特殊流程设定的用户
    public List<User> findSpecailByUser(StepBrief stepBrief, Duty duty);
    //获得特定职责
    public Set<Duty> findSpecialByDuty(StepBrief stepBrief, Duty duty);

    /**
     * 分页
     *
     * @param page
     * @param order
     * @param company
     * @return
     */
    public SearchResultPaging pagingStepBrief(PagePaging page, List<Rule> rules, Order order, ProcessBrief processBrief, Company company, BaseEnumManager.StateEnum... states);

    /**
     * 列表
     *
     * @param order
     * @param company
     * @return
     */
    public SearchResultList listStepsBrief(List<Rule> rules, Order order, Company company, BaseEnumManager.StateEnum... states);
}